package blatt1;

//
//general purpose reusable bouncing ball abstraction
//Described in Chapter 5 of
//Understanding Object-Oriented Programming with Java
//by Timothy A Budd
//Published by Addison-Wesley
//
//see ftp://ftp.cs.orst.edu/pub/budd/java/ReadMe.html
//for further information
//

import java.awt.*;

public class Ball {
	protected Rectangle location;
	protected Color color;

	public Ball(int x, int y, int r) {
		location = new Rectangle(x - r, y - r, 2 * r, 2 * r);
		color = Color.blue;
	}

	// functions that set attributes
	public void setColor(Color newColor) {
		color = newColor;
	}

	// functions that access attributes of ball
	public int radius() {
		return location.width / 2;
	}

	public int x() {
		return location.x + radius();
	}

	public int y() {
		return location.y + radius();
	}

	public Rectangle region() {
		return location;
	}

	// functions that change attributes of ball

	public void paint(Graphics g) {
		g.setColor(color);
		g.fillOval(location.x, location.y, location.width, location.height);
	}
}
